import { defineStore } from "pinia";
// 参数1：容器的ID,必须唯一,将来Pinia 会吧所有的容器挂载到跟容器
// 参数2：选项对象
// 返回值：一个函数，调用得到容器实例
export const useStore = defineStore("main", {
  /**
   * 类似于组件的data，用来储存全局状态
   *  1.必须是函数：这样是为了在服务端渲染的时候避免交叉请求导致数据状态污染
   *  2.必须是箭头函数  为了更好的 TS 类型推导
   */
  state: () => {
    return {
      num: 100,
      msg: "hello pinia !",
    };
  },
  /**
   * 类似组件的computed,用来封装计算属性，有缓存的功能
   */
  getters: {},
  /**
   * 类似于组件的methods,封装业务逻辑，修改state
   */
  actions: {
    setNumber(n:number){
      this.num = n
    }
  },
});
